
#ifndef _ICONTINUOUS_CONVEX_CAST_H_
#define _ICONTINUOUS_CONVEX_CAST_H_

#include <BGridPlane>
#include "IAlgorithm.h"
#include "IVoronoiSimplexSolver.h"

class IContinuousConvexCast
{
public:
	IContinuousConvexCast(BShape* shapeA, BShape* shapeB);

	bool calcTimeOfImpact(const BMatrix& sourceA, const BMatrix& targetA, const BMatrix& sourceB, const BMatrix& targetB, CastResult& caseResult);

private:
	void computeClosestPoints(const BMatrix& matrixA, const BMatrix& matrixB, struct IDetectorResult& pointCollector);

private:
	BShape*			_shapeA;
	BShape*			_shapeB;
	IVoronoiSimplexSolver _simplexSolver;

};

#endif
